package com.wzdigit.wms.basic.client.request.basic;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 创建区域输入
 * @author yangdongjie
 * @CreateZoneGroupRequest.java
 * @2021年1月4日上午11:18:30
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler", "fieldHandler"}, ignoreUnknown = true)
public class CreateZoneGroupRequest implements Serializable {
	
	private static final long serialVersionUID = -5901522054398180406L;

	/**
     * 区域代码
     */
    @ApiModelProperty(value = "区域代码", required = true)
    @NotBlank(message = "区域代码不能为空")
    private String zoneGroupCode;

	/**
     * 区域名称
     */
    @ApiModelProperty(value = "区域名称", required = true)
    @NotBlank(message = "区域名称不能为空")
    private String zoneGroupName;

	/**
     * 仓库ID
     */
    @ApiModelProperty(value = "仓库ID", required = true)
    @NotNull(message = "仓库ID不能为空")
    private Integer whsId;

	/**
     * 拣货位设置：
     * 此区域内执行库存分配时，是否遵循产品档案的拣货位设置要求进行分配，
	 * 查找拣货位中的库存。例如正常存储区遵循拣货位设置，不良品区无需执行拣货位管理逻辑，
	 * 可进行存储位内库存分配
     */
    @ApiModelProperty(value = "拣货位设置", required = true)
    @NotNull(message = "拣货位设置不能为空")
    @Range(min = 0, max = 1, message = "拣货位设置错误")
    private Integer pickLocation;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态", required = true)
    @NotNull(message = "状态不能为空")
    @Range(min = 0, max = 1, message = "状态错误")
    private Integer status;
}
